package com.geostar.constructionland.analyse.entity.model;

import com.geostar.constructionland.analyse.entity.Block;
import com.geostar.constructionland.analyse.entity.WKTBlock;
import com.geostar.constructionland.analyse.valid.AreaCalValid;
import com.geostar.constructionland.analyse.valid.GeoAnalyseVaild;
import com.geostar.constructionland.analyse.validtor.ValidAnalyseModelRule;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * @author yelll
 * @since 2020-5-26 9:56
 **/
@Data
@ApiModel
@ValidAnalyseModelRule
public class AnalyseModel {
    @ApiModelProperty(value = "业务ID", required = true)
    @NotEmpty(groups = {AreaCalValid.class}, message = "业务ID不能为空")
    private String ywid;
    @ApiModelProperty(value = "分析类型", required = true)
    @NotEmpty
    private String fxlx;
    @ApiModelProperty(value = "耕地年度", required = true)
//    @NotEmpty
    private String gdnd;
    @ApiModelProperty(value = "权属年度", required = true)
//    @NotEmpty
    private String qsnd;
    @ApiModelProperty(value = "地类年度", required = true)
//    @NotEmpty
    private String dlnd;
    @ApiModelProperty(value = "占压分析版本")
    private String analyseVersion;
    @ApiModelProperty(value = "平差算法版本")
    private String adjustVersion;
    @ApiModelProperty(value = "地块信息")
    @NotEmpty(groups = {GeoAnalyseVaild.class}, message = "地块信息不能为空")
    private List<Block> blocks;
    @ApiModelProperty(value = "分析标示")
    private String alyId;
    @ApiModelProperty(value = "映射后的")
    private String fxlxMapped;
    @ApiModelProperty(value = "流程代码")
    private String lcdm;
    @ApiModelProperty(value = "环节代码")
    private String hjdm;
    @ApiModelProperty(value = "来源")
    private String source;
    @ApiModelProperty(value = "地类编码版本号")
    private String dlbmbbh;
    @ApiModelProperty(value = "原始分析类型（落图分析使用）")
    private String originFxlx;
    @ApiModelProperty(value = "唯一任务ID")
    private String uniqueTaskId;
    @ApiModelProperty(value = "剔除坐标（空间擦除使用）")
    private String  dlIds;

    @ApiModelProperty(value="地块格式类型（GeoJson和WKT）")
    private String blockType;
    @ApiModelProperty(value="WKT格式地块信息")
    private List<WKTBlock> wktBlockList;

    private String applicationGuid;
}
